const readline = require('readline');
const fs = require('fs');
const path = require('path');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

function question(prompt) {
  return new Promise((resolve) => {
    rl.question(prompt, resolve);
  });
}

async function setupEmail() {
  console.log('📧 Upbit 交易对监控系统 - 邮件配置向导');
  console.log('=' .repeat(50));
  console.log('');
  
  console.log('🔔 注意事项：');
  console.log('1. 如果使用QQ邮箱，需要使用授权码而不是登录密码');
  console.log('2. 授权码获取方法：QQ邮箱设置 → 账户 → 开启SMTP服务 → 生成授权码');
  console.log('3. 其他邮箱请查阅相应的SMTP设置');
  console.log('');
  
  // 获取用户输入
  const emailUser = await question('请输入发送邮箱地址: ');
  const emailPass = await question('请输入邮箱密码/授权码: ');
  const recipients = await question('请输入接收邮箱（多个邮箱用逗号分隔）: ');
  
  // 询问邮件服务器配置
  console.log('');
  console.log('📬 邮件服务器配置（如不确定，可直接回车使用默认值）');
  const emailHost = await question('SMTP服务器地址 [smtp.qq.com]: ') || 'smtp.qq.com';
  const emailPort = await question('SMTP端口 [465]: ') || '465';
  const emailSecure = await question('使用SSL/TLS [true]: ') || 'true';
  
  // 生成配置内容
  const envContent = `# 邮件服务器配置
EMAIL_HOST=${emailHost}
EMAIL_PORT=${emailPort}
EMAIL_SECURE=${emailSecure}

# 邮件认证信息
EMAIL_USER=${emailUser}
EMAIL_PASS=${emailPass}

# 收件人列表（多个邮箱用逗号分隔）
EMAIL_RECIPIENTS=${recipients}

# 检查间隔（毫秒）
CHECK_INTERVAL=3000`;

  // 写入.env文件
  const envPath = path.join(__dirname, '../.env');
  fs.writeFileSync(envPath, envContent);
  
  console.log('');
  console.log('✅ 邮件配置已保存到 .env 文件');
  console.log('');
  console.log('🧪 现在可以运行测试命令验证配置：');
  console.log('   npm run test-email');
  console.log('');
  console.log('🚀 如果测试成功，可以运行主程序：');
  console.log('   npm start');
  
  rl.close();
}

setupEmail().catch(error => {
  console.error('配置过程出错:', error.message);
  rl.close();
});
